//
//  HMBaseViewController.swift
//  HMWeibo12
//
//  Created by 陈伯共 on 16/9/17.
//  Copyright © 2016年 陈伯共. All rights reserved.
//

import UIKit

// 根据用户是否登录显示不同的页面

class HMBaseViewController: UIViewController{
    // 用户登录标示
    var isUserLogin = false

    // 实现loadView 控制器的self.view,就是你在loadView里面设置的View
    // 当实现了loadView,就不会走sb,xib
    override func loadView() {
        // 如果用户登录了，显示tableView
        if isUserLogin{
            
            self.view = tableView
            
            // 遵守tableView的数据源和代理
            tableView.dataSource = self
            tableView.delegate = self
        }
        else{
            // 用户没有登录,显示登录界面
            self.view = visitorView
            
            // 5.设置self成为visitorView的代理，会报错
            visitorView.delegate = self
            
            // 根据不同的控制器，修改不同的访客视图
            // self其实是子类，我们创建的其实是子类，多态
            if  self.isKind(of: HMHomeViewController.self) {
                print("首页")
                visitorView.rotationAnimation()
            } else if self.isKind(of: HMMessageViewController.self) {
                visitorView.setupVisitorInfo(imageName: "visitordiscover_image_message", message: "登录后，别人评论你的微博，发给你的消息，都会在这里收到通知")
            } else if self.isKind(of: HMDiscoverViewController.self) {
                visitorView.setupVisitorInfo(imageName: "visitordiscover_image_message", message: "登录后，最新、最热微博尽在掌握，不再会与实事潮流擦肩而过")
            } else if self.isKind(of: HMProfileViewController.self) {
                visitorView.setupVisitorInfo(imageName: "visitordiscover_image_profile", message: "登录后，你的微博、相册、个人资料会显示在这里，展示给别人")
            }
            
            // 设置导航栏的按钮
            self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "注册", style: .plain, target: self, action: #selector(visitorViewDidClickRegister))
            self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "登录", style: .plain, target: self, action: #selector(visitorViewDidClickLogin))
        }
    }
    
    
    // MARk - 懒加载 
    /// 访客视图
    lazy var visitorView : HMVisitorView = HMVisitorView()
    /// tableView
    lazy var tableView : UITableView = UITableView()
}

// 6.遵守协议，报错,要实现协议方法
extension HMBaseViewController: HMVisitorViewDelegate{
    // 7.实现协议方法
    func visitorViewDidClickLogin() {
        print("visitorViewDidClickLogin")
    }
    
    func visitorViewDidClickRegister() {
        print("visitorViewDidClickRegister")
    }

}

// 仅仅是让tableView实现数据源方法，不报错，具体实现应该让子类去实现
extension HMBaseViewController: UITableViewDataSource{
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 0
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        return UITableViewCell()
    }
}

extension HMBaseViewController: UITableViewDelegate{
    
}
